Differential Pulse Position Modulation (DPPM) is used in applications that require power efficiency and fast communication links. A single pulse encodes multiple bits of data in the differential time between pulses. Transmitting four bits of data at a time decreases processing. Additionally, the only important measurement is the rising edge of each pulse. The pulse itself can be shorter than a full clock cycle, which saves power. Since many devices using infrared transmission rely on batteries and relatively slow processors, these advantages make DPPM encoding well suited for infrared data transmission.
When transmitting a signal through cabling, it is common to also transmit a clock signal alongside the data on an additional wire. This is not commonly done when using wireless communications, because including a dedicated clock signal requires an extra transmitter/receiver pair. Differential Pulse Position Modulation is a scheme that is asynchronous—the receiver does not need to have a clock that is synchronized with the transmitter, introducing significant savings in bandwidth and hardware costs.
Infrared communications often use a Light-Emitting Diode (LED) as a low cost transmitter. However, there is a maximum rate at which any given LED can be switched. In order to exceed a certain data rate without custom or high performance hardware or another transmission method, it is necessary to transmit more than one bit of data through a single pulse.
Existing commercial IR transceivers are rated up to four Mbits/s and automatically transmit pulses of fixed duration for each input rising edge. These are primarily designed to be used with plain serial data, and most commonly support only a limited speed of 115.2 kbit/s using a basic serial data protocol such as Universal Asynchronous Receiver/Transmitter (UART). There are also commercial IR LEDS and sensors which can be used to replace one of these transceivers, and are available at multiple levels of performance.
There are also peripherals built into many common microcontrollers available to convert data from serial into Serial IR 115.2 kbs protocol. However, these are limited to that maximum speed and do not encode this protocol. State of the art peripherals do not use DPPM encoding nor do they operate above 115.2 kbs. Therefore, what is needed is an energy-efficient method to optimally encode data that can be transmitted over a high speed infrared link and decoded once received.
While it is possible to implement DPPM in the firmware of a microcontroller, it is not a task that a microcontroller can easily process in parallel with other tasks. In order to implement a reasonable speed (Mbps), the difference between pulse positions for a ‘3’ versus a ‘4’ can only be one or two clock cycles. If the microcontroller is engaged in some other task when a pulse is received, it may not be able to handle that data immediately. Even a slight delay in reception of consecutive symbols could corrupt the data.